<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task Descriptor: 执行测试套件</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="execute_test_suite">
<meta name="uma.presentationName" content="执行测试套件">
<meta name="uma.guid" content="_shqGsEohEdqrjq4i3fchvA">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc={35359DDF-6361-43E5-8B1B-18D204DA8CFF}&path={35359DDF-6361-43E5-8B1B-18D204DA8CFF},{0AE0042B-034C-4296-9FA0-D9DCC61FC7B4},_shqGsEohEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_shqGsEohEdqrjq4i3fchvA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task Descriptor: 执行测试套件</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">此任务描述了如何执行对于评估产品质量所必需的相应测试的集合，以及如何捕获可辅助正在进行的产品评估的测试结果。</td>
</tr>
<tr>
<td>Based on Method Task: <a href="./../../rup/tasks/execute_test_suite_492795DE.html" guid="{6B420194-5EB7-4A12-A061-09FAA5DC18DE}">执行测试套件</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_tester_E8F821D1.html" guid="_CSvwgRi2Edq_uI8xTPML6g">测试员</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_suite_3D31FFB3.html" guid="_shwNUEohEdqrjq4i3fchvA">测试套件</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_build_89B4E980.html" guid="_ryALY0ohEdqrjq4i3fchvA">工作版本</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_plan_47CFDFC3.html" guid="_shwNUUohEdqrjq4i3fchvA">测试计划</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_script_AD8A03F0.html" guid="_CSvwhRi2Edq_uI8xTPML6g">测试脚本</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_data_D79135E7.html" guid="_CSvwghi2Edq_uI8xTPML6g">测试数据</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_iteration_plan_9F42C99E.html" guid="_shwNU0ohEdqrjq4i3fchvA">迭代计划</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_development_infrastructure_20DB13BB.html" guid="_ryALYkohEdqrjq4i3fchvA">开发基础结构</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_component_3668F3D9.html" guid="_shwNUkohEdqrjq4i3fchvA">可测性元素</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_log_1C3E1D2.html" guid="_shwNVEohEdqrjq4i3fchvA">测试日志</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 将测试环境设置为已知状态</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="SetupTestEnv1" name="SetupTestEnv1"></a>
<div align="left">
    <table width="100%" summary="布局表" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%" scope="row">
                目的：
            </td>
            <td width="95%">
                精确地建立测试环境，为测试套件的执行作准备。
            </td>
        </tr>
    </table><br />
</div>
<p>
    设置测试环境，以确保建立了所有必需的组件（硬件、软件、工具、数据等等），且这些组件在测试环境中可用且以正确状态就绪，能开始进行测试。通常这将涉及到某种形式的基本环境复位（例如注册表和其他配置文件），将底层数据库复原到需要的状态，以及所有外围设备的设置（例如将纸张装入打印机）。尽管一些任务能自动执行，但某些方面通常需要人员参与。
</p>
<p>
    环境支持工具（例如启用硬盘映像捕获和复原的工具）的使用在有效地管理此工作非常有价值。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 设置执行工具选项</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="ExecutionOptions" name="ExecutionOptions"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                适当地配置在测试套件执行中使用的工具。
            </td>
        </tr>
    </table><br />
</div>
<p>
    设置支持工具的执行选项。根据工具的复杂性，可以考虑许多选项。如果不适当地设置这些选项，可能会减小生成的测试日志和其他输出的有用性和价值。如有可能，您应尝试存储这些工具选项和设置，以便能根据一个或多个预先确定的概要文件方便地重新装入它们。对于自动测试执行工具的情况，可能要考虑许多不同的设置，例如执行的速度。
</p>
<p>
    对于手动测试的情况，常常仅需要将问题或变更请求记录到跟踪系统中，或者对支持系统中的新的唯一条目进行分区，以记录结果。对于要作为写入目标的测试日志，您应考虑诸如名称、位置和状态之类的问题。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 调度测试套件执行</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="ScheduleTestSuite1" name="ScheduleTestSuite1"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                确定测试执行适当的开始时间。
            </td>
        </tr>
    </table><br />
</div>
<p>
    在许多情况下，在可以参与测试执行的场合，测试套件可以相对地按需执行。在这些情况中，调度时将可能需要考虑诸如其他测试员的工作、其他团队成员的工作，以及共享测试环境的不同测试团队的工作之类的注意事项。在这些情况中，测试执行通常需要解决很少发生的环境复位问题。
</p>
<p>
    但是，对于需要无人看管执行自动测试的情况，或对于必须协调在不同的机器上并发运行的许多测试的情况，可能需要某种形式的自动调度机制。请使用您的自动测试执行工具的特性，或开发您自己的实用程序函数以启用必需的调度。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 执行测试套件 </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="ExecuteTestSuite1" name="ExecuteTestSuite1"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                进行测试套件中包含的测试，并监视其完成情况。
            </td>
        </tr>
    </table><br />
</div>
<p>
    测试套件的执行情况会有所不同，这取决于测试是自动进行还是手动进行。对于每种情况，在测试实现任务期间开发的测试套件用来自动执行测试，或者指导测试的手动执行。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 评估测试套件的执行</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="EvaluateExecution1" name="EvaluateExecution1"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                确定执行的测试套件是已完成还是异常中断，并进行评估，以确定是否需要纠正操作。
            </td>
        </tr>
    </table><br />
</div>
<p>
    测试的执行在以下的任一情况下结束或终止：
</p>
<ul>
    <li>
        正常：所有测试按照计划执行完成。&#160;
    </li>
    <li>
        异常或不成熟：测试未完全按计划执行。 当测试异常结束时，从中得出后续测试结果的测试日志可能不可靠。需要确定异常终止的原因，并在必要时纠正故障并重新执行测试。
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="stepHeading"> 从中断的测试恢复</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="RecoverHaltedTests" name="RecoverHaltedTests"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                确定用于从中断的测试套件执行进行恢复的适当的纠正操作，并在需要的时候纠正问题，恢复和重新执行测试套件。
            </td>
        </tr>
    </table><br />
</div>
<p>
    要从中断的测试恢复，请执行以下操作：
</p>
<ul>
    <li>
        <a href="#VerifyTestLogs2">检查测试日志和其他输出</a>
    </li>
    <li>
        <a href="#CorrectErrors">纠正错误</a>
    </li>
    <li>
        <a href="#ExecuteTestSuite2">再次调度和执行测试套件</a>
    </li>
    <li>
        <a href="#EvaluateExecution2">重新评估测试套件的执行</a>
    </li>
</ul>
<h4>
    <a id="VerifyTestLogs2" name="VerifyTestLogs2">检查测试日志和其他输出</a> <a href="#RecoverHaltedTests"><img     src="./../../rup/resources/top.gif" alt="至“恢复中断的测试”" border="0" width="26" height="20" /></a>
</h4>
<p>
    在测试日志和其他输出中检查完成度和精确度。标识已出错的地方，并检查它们。
</p>
<p>
    当测试自动化正在部署时，要明确两类中断的测试，这很重要：
</p>
<ul>
    <li>
        致命错误 － 系统失败（网络失败、硬件崩溃等）
    </li>
    <li>
        测试失败 － 测试套件中测试的某部分不能按计划执行。
    </li>
</ul>
<p>
    在测试执行期间发生任何一类异常行为时，它们可能呈现以下症状：
</p>
<ul>
    <li>
        测试套件正在执行时，出现大量（正在发生的）意外操作或意外窗口。
    </li>
    <li>
        测试环境显示为不响应、很缓慢或处于不希望出现的状态（例如挂起或崩溃）。
    </li>
</ul>
<p>
    处理这些症状，直到您可以确定问题的根本原因。
</p>
<h4>
    <a id="CorrectErrors" name="CorrectErrors">纠正错误</a> <a href="#RecoverHaltedTests"><img     src="./../../rup/resources/top.gif" alt="至“恢复中断的测试”" border="0" width="26" height="20" /></a>
</h4>
<p>
    错误可在测试消耗的输入数据中、测试本身中或测试的其他方面（例如测试环境或运行时工具设置）中找到。要对测试的某个方面的错误进行修正，通常需要提供测试所有常见方面的正确状态。
</p>
<p>
    一旦完成了问题的调查，您可能会发现一个或多个需要纠正的故障。要对环境进行永久纠正，对数据或测试本身进行测试，一个不错的做法是在应用任何永久性纠正之前，将测试的每个方面再次复原到已知状态。这确保了没有其他不希望的或无效的更改能进入已知状态环境。
</p>
<p>
    在进行了必要的更改之后，按需要保存测试和备份，或者保存伴随的输入数据和测试环境。
</p>
<h4>
    <a id="ExecuteTestSuite2" name="ExecuteTestSuite2">再次调度和执行测试套件</a> <a href="#RecoverHaltedTests"><img     src="./../../rup/resources/top.gif" alt="至“恢复中断的测试”" border="0" width="26" height="20" /></a>
</h4>
<p>
    重新调度和执行测试套件。根据可用的恢复进程（如果存在），您能从中间某点重新启动测试套件，而不是一定要从开始启动。请注意，要从测试运行中途的某点恢复测试执行，通常需要某种类型的部分恢复过程的实现和持续维护。
</p>
<h4>
    <a id="EvaluateExecution2" name="EvaluateExecution2">重新评估测试套件的执行</a> <a href="#RecoverHaltedTests"><img     src="./../../rup/resources/top.gif" alt="至“恢复中断的测试”" border="0" width="26" height="20" /></a>
</h4>
<p>
    确认测试套件现在朝着完成的方向运行。如果仍存在问题，则请对照组成“从中断的测试恢复”的子节再执行一遍，直到解决所有问题。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 在测试日志中检查完成度和精确度</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="VerifyTestLogs1" name="VerifyTestLogs1"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                确定测试套件执行是否生成了有价值的测试信息，如果为否，则确定适当的纠正操作。
            </td>
        </tr>
    </table><br />
</div>
<p>
    当测试执行首次完成时，应评审测试日志，以确保日志可靠，且（对测试目标的）外部影响（例如测试的不正确的环境设置或无效的数据输入）未造成报告的故障、警告或意外结果。
</p>
<p>
    对于 GUI 驱动的自动测试，常见测试故障包括：
</p>
<ul>
    <li>
        <b>测试验证故障</b> － 它发生于实际结果和预期结果不匹配时。请验证所用的验证方法只关注基本的项和／或属性，并在必要的时候进行修改。
    </li>
    <li>
        <b>意外的 GUI 窗口</b> － 发生此情况有一种原因。 最常见的原因是意外的 GUI 窗口是活动窗口，或者显示的 GUI 窗口的数目大于预期值。确保测试环境已按计划进行设置和初始化，以正确地执行测试。
    </li>
    <li>
        <b>遗漏 GUI 窗口</b> － 当 GUI 窗口预期会出现（但不一定是活动的）而又没有出现时，注明此故障。确保测试环境已按计划进行设置和初始化，以正确地执行测试。验证实际遗漏的窗口是否从／已从测试目标除去。
    </li>
</ul>
<p>
    如果报告的故障是由于在测试工作产品中识别的错误引起的，或者是由于测试环境的问题引起的，则应采取相应的纠正操作，并应重新执行测试。
</p>
<p>
    如果测试日志使您能确定故障原因是目标测试项中的真实故障，那么任务的执行部分已完成。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 将测试环境复原为已知状态</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="RestoreTestEnv3" name="RestoreTestEnv3"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      bordercolor="#808080" cellspacing="0" cellpadding="4" width="100%" border="1">
        <tbody>
            <tr>
                <td width="5%">
                    目的：
                </td>
                <td width="95%">
                    确保测试套件执行之后正确地对环境复位。
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    （请参阅第一步）接下来您应将环境复原回其原始状态。通常除了诸如将纸张装入打印机之类的任务以外，这还将涉及到某种形式的基本环境复位（例如注册表和其他配置文件），将底层数据库复原到已知状态等等。尽管一些任务能自动执行，但某些方面通常需要人员参与。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 维护可跟踪性关系</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Traceability" name="Traceability"></a> 
<div align="left">
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      bordercolor="#808080" cellspacing="0" cellpadding="4" width="100%" border="1">
        <tbody>
            <tr>
                <td width="5%">
                    目的：
                </td>
                <td width="95%">
                    使得能对跟踪的项执行影响分析和评估报告。&#160;
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    通过使用在测试计划中概述的可跟踪性需求，按照需要更新可跟踪性关系。一个不错的开始点是在度量特殊范围或测试覆盖方面考虑可跟踪性。作为一般规则，我们建议您将测试范围的度量基于您在测试计划活动期间发现的激发因素。
</p>
<p>
    测试套件还可能跟踪至它们实现的已定义测试用例。它们还可能跟踪至需求元素、软件规约、设计或实现。
</p>
<p>
    无论您已确定的要跟踪的重要关系是什么，您将需要更新在测试套件实现期间建立的关系的状态。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 评估并验证结果</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="EvaluateResults" name="EvaluateResults"></a>
<div align="left">
    <table width="100%" cellspacing="0" cellpadding="4" border="1" style="border: 1px solid rgb(128,128,128)"     bordercolor="808080">
        <tr>
            <td width="5%">
                目的：
            </td>
            <td width="95%">
                验证任务已恰当地完成，生成的工作产品是可以接受的。
            </td>
        </tr>
    </table><br />
</div>
<p>
    既然您已完成了该工作，那么最好验证该工作是否有足够的价值，而且您并不是简单地消耗大量纸张。您应评估您的工作质量是否适当，是否完整得足以让其他团队成员觉得您的工作很有用，并随后将它们用作他们自己工作的输入源。在可能的情况下，请使用 NUP
    中提供的核对表验证质量和完整性是否都“足够好”。
</p>
<p>
    让执行下行任务（根据您输入的工作信息）的人员参与评审您的过渡工作。请在您还有时间针对他们的意见采取行动时让他们参与评审。您还应针对主要输入工作产品评估您的工作，以确保您已精确并充分地展示了它们。让输入工作产品的作者以此为基础评审您的工作，这可能很有用。
</p>
<p>
    请记住，NUP
    是一个迭代式的交付流程，并且在许多情况下工作产品是随着时间而演进的。所以，通常没必要完全形成将在近期的后续工作中只部分使用或根本不用的工作产品，并且这通常对生产力有副作用。这是因为很有可能在使用工作产品前，工作产品周围的情况会发生变化（并且在创建工作产品时作出的假设也会证明是不正确的），从而带来工时的浪费和高成本的重复工作。同时也要避免在展示内容值的危害方面花费过多周折的陷阱。在展示作为项目可交付成果有很大的重要性而且有经济价值的项目环境中，您可能希望考虑使用管理资源来执行展示任务。
</p><br />
<br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
